d657b977d906cbbf9ec83aca99e63c2b6f5dbd9c,src/com/avail/descriptor/MessageBundleTreeDescriptor.java,MessageBundleTreeDescriptor,o_RemovePlan,#AvailObject#A_DefinitionParsingPlan#,762
Before Change
final AvailObject object,
final A_DefinitionParsingPlan plan)
{
synchronized (object)
{
final A_Bundle bundle = plan.bundle();
final A_Definition definition = plan.definition();
A_Map allPlans = object.slot(ALL_PLANS);
assert allPlans.hasKey(bundle);
A_Map submap = allPlans.mapAt(bundle);
submap = submap.mapWithoutKeyCanDestroy(definition, true);
if (submap.mapSize() == 0)
{
allPlans = allPlans.mapWithoutKeyCanDestroy(bundle, true);
}
else
{
allPlans = allPlans.mapAtPuttingCanDestroy(
bundle, submap, true);
}
object.setSlot(ALL_PLANS, allPlans.makeShared());
// And remove it from unclassified.
A_Map unclassified = object.slot(UNCLASSIFIED);
if (unclassified.hasKey(bundle))
{
A_Map unclassifiedSubmap = unclassified.mapAt(bundle);
unclassifiedSubmap = unclassifiedSubmap.mapWithoutKeyCanDestroy(
definition, true);
if (unclassifiedSubmap.mapSize() == 0)
{
unclassified = unclassified.mapWithoutKeyCanDestroy(
bundle, true);
}
else
{
unclassified = unclassified.mapAtPuttingCanDestroy(
bundle, unclassifiedSubmap, true);
}
object.setSlot(UNCLASSIFIED, unclassified.makeShared());
}
}
}
After Change
*/
@Override
void o_RemovePlanInProgress (
final AvailObject object,
final A_ParsingPlanInProgress planInProgress)
{
synchronized (object)
{
object.setSlot(
ALL_PLANS_IN_PROGRESS,
layeredMapWithoutPlan(
object.slot(ALL_PLANS_IN_PROGRESS), planInProgress));
object.setSlot(
UNCLASSIFIED,
layeredMapWithoutPlan(